package cn.deschen.search.utils;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 * @Author hanbin_chen
 * @Description 序列化工具
 * @DateTime 2021/6/11
 * @Version V1.0.0
 */
public class SerializableUtil {

    /**
     * 解析成Long
     * @param value
     * @return
     */
    public static Long parse2Long(Serializable value) {
        if (null == value) {
            return 0L;
        }
        return Long.valueOf(value.toString());
    }

    /**
     * 解析成Integer
     * @param value
     * @return
     */
    public static Integer parse2Integer(Serializable value) {
        if (null == value) {
            return 0;
        }
        return Integer.valueOf(value.toString());
    }

    /**
     * 解析成Integer
     * @param value
     * @return
     */
    public static String parse2String(Serializable value) {
        if (null == value) {
            return "";
        }
        return value.toString();
    }


    /**
     * 解析成时间格式
     * 序列化后的时间格式：EEE MMM dd HH:mm:ss zzz yyyy
     * @param value
     * @return
     */
    public static LocalDateTime parse2LocalDateTime(Serializable value) {
        if (null != value) {
            return null;
        }
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
                "EEE MMM dd HH:mm:ss zzz yyyy",
                Locale.US
        );
        return LocalDateTime.parse(value.toString(), formatter);
    }

}
